package offer.Question51_60.solutions;

public class QSolution56_2 {

    /*
     * 数组中数字出现的次数 II
     *
     * 首先，数组中数字除了一个数字之外，其它的数字都出现了三次，因此，我们可以申请一个长为 32 的数组（int 类型四个字节） vals，
     * 如果某一个数字出现了超过三次，那么就说明它的二进制表示的每一位也出现了三次，所以如果把所有出现了 3 次的数字的
     * 二进制表示的每一位都分别加起来，那么每一位的和都能被 3 整除。
     *
     * 因此，遍历数组中的每一个数字，如果它第 i 个二进制位上的数字为 1，那么就将 vals[i]++。最后判断 vals 中第 j 位的值，如果
     * 不能被 3 整除，那么就说明只出现一次的数字的第 j 位的二进制的值为 1，通过这种方式，就可以得知只出现一次数字的值。
     */

}
